@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} HE |||||DOS DOSDOS SYS }}}}CDOS SYS} 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1 3u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8}860 LV=LV-N2:LEVEL=LEVEL+12:IF LEVEL>60 THEN LEVEL=LEVEL-12:LV=LV+N2865 RESTORE 19070+LEVEL:FOR I=N1 TO 48:READ A:MAP(I)=A:N,}EXT I=LV-N2:LEVEL=LEVEL+12:IF LEVEL>60 THEN LEVEL=LEVEL-12:LV=LV+N2865 RESTORE 19070+LEVEL:FOR I=N1 TO 48:READ A:MAP(I)=A:N+,DATHEXLINTOTADATLIDDBYTPASCHKSU@.} *************** RAMCHECK ** by *(* A. Giambra *2***********/}***<990,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15Fs;@,9@",/-@"3"<68,-@ 0}L6-AV#A` APs(}CHECKING DATAPV6-6-%@/-@@;(LINE:?"VB:,@1}AZF%6-F:A,%F:A,$AV+C(LINE  MISSING!Fdj$-@B:,&@@86-@:2}7,,&@HT6-@:7%@,,&@Hj6-8,$@%8,n."@*@ $". @x6-%8,%83}, ""@ A33F:A,@*F:A,@A"7@@4} D:RAMCHECKC6-@O6-AY#Ac Apv(}CREATING FILE @@0B:,"@x5}*"AP& A`0 @(BAD DATA: LINE jjFFFF00307D3078A900AA9D00D09D00D29D00D39D00D4E8D0F185008506}1A002A5018D1AD0B10048A900189100D100F005,536jj84CD4C00066901D0F1689100C8D0E5E601A501C930D0D8A90085CBA92C85CCA91985CDA930857}CEA028B1CD91CB8810F9,659jjA025A56A91CBC8C8C8A94C91CBC8A97491CBC8A9E491CBA000A9008500A93085014C002C00068806689100A916850CA8}9,612jj06850DA917850AA906850B2074E46018A5CD650085D49002E601A50185D520AAD920E6D8A98485CBA90685CCA000B1F3,593jj300591CB9}C810F7297F91CBA200A90B8D4203A9698D4403A9068D4503A9208D4803A9008D4903A9018DF0022056E44C66,576XX069B9B9B9B9B7FD2C1CDA0C5D2D:}2CFD2A0C1D4A0C1C4C4D2C5D3D3202020202020E002E1020030,487 D:RAMDISK.BASM'CH *************** RAMCHECK ** (CASSETTE) *(* B <}Y *2* A. GIAMBRA *<**************F!AY!6-A6P""6@AZ 6-% =}@6-%d @n6-B"x""6@AP 6-%@6-% A ?"  >}AY@4<(ERROR IN DATA STATEMENTS?6-?:B",VV104,145,0,169,23,133,12,169,6,133,13,169,23,133,1 ?}0,169,6,133,11,32,116,228,96,24[[165,205,101,0,133,212,144,2,230,1,165,1,133,213,32,170,217,32,230,216,169,132,133,203 @}YY169,6,133,204,160,0,177,243,48,5,145,203,200,16,247,41,127,145,203,162,0,169,11,141OO66,3,169,105,141,68,3,169,6,141,6 A}9,3,169,32,141,72,3,169,0,141,73,3,169,1^^141,240,2,32,86,228,76,102,6,155,155,155,155,155,127,210,193,205,160,197,210,21 B}0,207,210FF160,193,212,160,193,196,196,210,197,211,211,32,32,32,32,32,32,-1WW120,169,0,170,157,0,208,157,0,210,157,0, C}211,157,0,212,232,208,241,133,0,133,1,160OO2,165,1,141,26,208,177,0,72,169,0,24,145,0,209,0,240,5,132,205,76,0,6,105YY D}1,208,241,104,145,0,200,208,229,230,1,165,1,201,48,208,216,169,0,133,203,169,44,133``204,169,25,133,205,169,48,133,206,1 E}60,40,177,205,145,203,136,16,249,160,37,165,106,145,203^^200,200,200,169,76,145,203,200,169,116,145,203,200,169,228,145,2 F}03,160,0,169,0,133,0,16948,133,1,76,0,44,-1" 31859 D:RAMCASS.BASAMCHECK ** (CASSETTE) *(* B R X; **************X; * *X; * RAMCHECK *(X; * by *2X; * A. GIAMBRA *<X; * *FH}X; **************PX;ZX; OS EQUATESdX;nRAMTOPj;;TOP OF MEMORYxDOSVEC ;;DOS MENU VECTOR!DOSINI ;;DOS INII}TIALIZATIONCRSINH;;INHIBIT CURSORPUTB ;;PUT CHARACTERSICCOMB;;OS I/O COMMANDICBALD;;BUFFER ADDRESJ}SICBLLH;;BUFFER LENGTHCIOVV;;OS I/O ROUTINEGTIA;;VIDEO CHIPPOKEY;;I/O CHIPPIA;;PORTSK}ANTIC;;SCREEN DISPLAY COLBAK;;BACKGROUND COLOR LINZBSWARMSTARTtFRO;;FP REGISTERIFP;;IL}NTEGER TO FP"FPA;;FP TO ASCII,INBUFF;;FP REGISTER6X;@X; WORK EQUATESJX;T HEX300^HEX2C00,hIXM};;WORK INDEXrIX1;;WORK INDEX|JUMPL;;MACHINE CODE JMPCR;;CARRIAGE RETURNTAB;;SCREEN TABSP ;;SPN}ACEX;0X;BEGIN=;;DISABLE INTERRUPTSQ>>"CLRCHPPGTIA9;;CLEAR THE CHIPS PPOKEY9 PPIA9 PANTICO}92 HCLRCHPPLINZBS;;1ST MEMORY BYTE&PLINZBS0%>;;START AT 3RD BYTE:&LOOPERQLINZBS;;GET PAGE NUMBERDP}PCOLBAK;;STORE IN COLORNAGAINQ@LINZBS7X5;;SAVE THE CONTENTSbQ>l,v LOOP1P@LINZBS7;;STORE VALUER@LINZBS7;;SQ}AME VALUE? FLOOP2'IX1;;SAVE Y REGISTER!ERROR;;RAM ERRORX;LOOP2O>;;ADD 1HLOOP1;;DO IT AGAIN7;;RESTOR}RE CONTENTS P@LINZBS73;;BUMP TO NEXT ADDRESS HAGAIN#LINZBS;;NEXT PAGE QLINZBS;;LOAD PAGE NUMBER!INDES}XR>HEX30;;START OF CODE? HLOOPER;;NO, KEEP GOING'ENDERQ>4HEX2C00;;POINT IX TO $2000 PIX*Q>5HEX2C004 PIX>T}Q>4LOOPER;;POINT IX1 TOHPIX1;;OUR CODER Q>5LOOPER\ PIX1f%>ENDERLOOPERp#TRANSFERQ@IX17;;MOVE CODE FROMzP@U}IX7;;$4000 TO $2C001 ITRANSFER%>INDEXLOOPERQRAMTOP;;MEMTOP VALUEP@IX7;;MODIFY COMPARE3;;POINT TO CV}ODE3;;AFTER 'ENDER' 3;;LABELQ>JUMP;;CHANGE OPERATORP@IX7;;TO JMP3Q>4WARMSTARTP@IX7;;TARGET OF JMP3W};;IS WARMSTARTQ>5WARMSTARTP@IX7;;MODIFY THE CODE$%>.Q>;;NOW POINT LINZBS8PLINZBS;;TO $4000B Q>HEX30LPX}LINZBS;;AND CONTINUEV!,;;THE TEST`X;jtX;~ERROR7;;RESTORE LASTP@LINZBS7;;ADDRESSQ>4RETURN;;POINT DY}OSINIPDOSINI;;TO AN RTS Q>5RETURNPDOSINIQ>4BACK;;POINT DOSVECPDOSVEC;;TO OUR CODEQ>5BACK;;WARMSTARTZ} WILLPDOSVEC;;RETURN THERE WARMSTART;;DO WARMSTART RETURN:X; BACK, QIX1;;GET OFFSETOLINZBS;;ADD ME[}M ADDRESSPFRO;;PUT IN FP REGISTER( DNOCARRY2#LINZBS<NOCARRYQLINZBSF PFROP IFP;;CONVERT TO FPZ F\}PA;;CONVERT TO ASCIIdQ>4ADDR;;POINT IX TOnPIX;;OUR BUFFERx Q>5ADDR PIX%> DDQ@INBUFF7;;GET THE NUMBER]}GOKP@IX7;;PUT IN OUR BUFFER3IDDOKM>;;TURN OFF HIGH BITP@IX7;;SAVE LAST DIGIT$>;;CHANNEL 0 (EDITOR^})Q>PUTB;;PUT BYTES PICCOMQ>4MESG;;POINT TO OURPICBAL;;MESSAGE Q>5MESG PICBAL"Q> ;;WRITE 32 CHARACT_}ERS, PICBLL6Q>@ PICBLLJQ>;;TURN OFF CURSORT PCRSINH^ CIOV;;DO I/OhDX!DX;;LOOP FOREVERrX;|!MESG C`}R=CR=CR=CR=CR=TAB =ARAM ERROR AT A =AADDRESSA SPADDR SP=SP=SP=SP=SPX; BEGIN} & RAM OS BASIC MAKER,,@@ D:RAMOS.OBJ( @`2"*@b} @P<dbb255,255,0,6,101,6,32,70,6,177,203,145,205,200,208,249,230,204,230,206,202,224,48,208,3,32,91nddc}6,224,0,208,233,120,169,0,141,14,212,169,254,141,1,211,32,70,6,177,205,145,203,200,208,249,230xaa204,230,206,202,224,48,20d}8,3,32,91,6,224,0,208,233,88,169,64,141,14,212,0,169,0,133,203,169gg192,133,204,169,0,133,205,169,64,133,206,162,64,160,0e},96,160,8,230,204,230,206,202,136,208,248,96 D:RAMOS.BAS@ D:RAMOS.OBJ( @`2"*@@d X; "RAMOS"nX;x&X; This routine moves the 1200XL or$X; 800XL OS ROM to RAM from $4000&X; to $7FFF, disables the g}ROM, then%X; moves the OS back to its proper!X; address in what is now RAM.X;$X; It can also be used to move an#X;h} alternate OS into place after#X; it is created at $4000-$7FFF. X; Just Go to DISABLE at $61A#X; instead of the start ai}t $600.X;$X; The screen will flicker as the#X; charset is disabled, and then$X; Viola! You have a RAM OS. TellX; j}all your friends.X;"X;, X; equates6X;@ROM;;page 0 ROM indexJ!RAMROM;;page 0 RAM indexTOSROM;;stark}t of OS ROM^ OSRAM@;;start of RAM areah NMIEN;;ANTIC NMI disabler!PORTB;;PIA OS ROM disable|X;X;l} INIT;;init move addressesX;X;move ROM to RAMX;MOV1Q@ROM7 P@RAM73 HMOV1 #ROM #RAM0m}(>0 HMOV1A SKIP;;skip I/O region& MOV1A(>0 HMOV1:X;DDISABLE=;;disable IRQ'sNQ>XPNMIEN;;disable NMn}I'sbQ>lPPORTB;;disable OS ROMv INITX;"X;move RAM to former ROM regionX;MOV2Q@RAM7 P@ROM73 HMOo}V2 #ROM #RAM0(>0 HMOV2A SKIP MOV2A(>  HMOV2X; ENABLE.;;IRQ's*Q>@4PNMIEN;;NMI's>p}+;;that's all folksHX;RINITQ>4OSROM\PROMf Q>5OSROMp PROMz Q>4OSRAMPRAM Q>5OSRAM PRAM$>@q}%>:X; SKIP%>SKIP1#ROM #RAM01 HSKIP1:o RAM from $4000&X; to $7FFF, disables the P+, DATHEXLINDATLIDDBYTPASCHKSUTOTA@s} *** MAXICOPY MAKER ***990,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15r;@t},9@",/-@"3"<68,-@ L6-A V#A` Ar( CHECKING DATA(86-%@(Lu}INE:!"8B:,@AP2F%6-F:A,%F:A,$AV+C(LINE  MISSING!F<e-@@v}@36-@:7,,&@HO6-@:7%@,,&@He6-8,$@%8,F."@*@ $". @@w}P% 6-%!A %6-&AZ  ""@@d APn F:A,@APx@x}[+("INSERT DISK WITH DOS, PRESS RETURN/[@@D:MAXICOPY.OBJM(( WRITING FILE#6-@y}/6-A 9#AC AM @@(BAD DATA: LINE ddFFFF0021022144313A1021122144313A2021222144313z}A3021322144313A4021422144313A5021522144313A60,544dd21622144313A7021722144313A8021822144313A9021922144313AA021A22144313AB0{}21B22144313AC021C221,990dd44313AD021D22144313AE021E22144313AF021F22144313A0023022300000023232323006423CD260000000000,828|}dd007D202020202020204D415849434F505920627920472E20416C6272656368741D9B46696C6520746F20636F70,213dd793F9B496E7365727420}}736F75726365206469736B3A9B496E736572742064657374276E206469736B3A9B4D6F,644dd726520746F20636F70793F9BFD9BFD425245414B204B4~}5592041424F52549B208026208426A96AA223202326A0,794$cc69A9009900238810FAA900A22185B086B1AD300238E9018D6423AD3102E9018D6523A2}008E0223A98BA2232023,79.dd2618A90365B0A6B1208E261007C080D0E94CBC25A003B1B0C99BF01520EF25AE0223E8E01090D08E0223A9CFA2,4238}dd23202326A9018D0023A999A223202326A900A222208E26AE002320E025AE0023A9CE85B2A92785B38E0023A5B2,547Bcc9D2323A5B39D3323AD642}338E5B28D6623AD6523E5B38D6723D0034C2E25AD2323F010A9008D2323A9029D0223,20LddCE01234CB624A9018D6923A90420A626300DA210A907206}426105AC088F01420FB25AE0023FE1223A9009D4323,959Vcc9D53234CF024AE0023AD58039D4323AD59039D5323BD0223C9029003FE0223208026AE00}23BD43231865B285B2,37`ddBD532365B385B320EF25AE0023EC0223B01EEE0023AE00234C7224AE0023FE0223AD58039D4323AD59039D5323,203jd}dEE2323A9ADA223202326A900A222208E26A9028D6923EE0123AE012320E025AE0123BD1223D03EBD0223C902B0,288tdd10A90820A626100920FB25A}E0123FE1223AE0123BD1223D01FBD232385B2BD332385B3BD43238D6623BD53238D,444~cc6723A220A90B20642630D0AE0123BD0223F009C9039008A9}009D0223208426AE0123EC0023B0034C4125BD0223,52ddD005EC0223F00A4C5324A9D1A223202326A9C1A223202326A900A222208E2630F0AD0022C9}59D0034CE2236C0A,355dd00A9F085B0A92085B120EF25CAD0FA60A5B018691085B09002E6B16084D4A90085D520AAD920E6D8A000B1F330,476dd}080980995E26C8D0F4995E26A93BA226202326A5B0A6B18D44038E4503A200A9098D4203A9FF8D48038E49034C,970dd56E47D202020202020202020}202020202020204E6F7420636F706965642020C5D2D2CFD2A0B0B0B01C1C9B9D42,106dd03A5B29D4403A5B39D4503AD66239D4803AD67239D49034C5}6E4A210D002A220A90C9D42034C56E48D44038E45,531dd03A200A9058D4203A9FF8D48038E49034C56E48D6823AD69230A0A0A0AAAA9039D4203AD68}239D4A03A9009D4B,476dd03A5B09D4403A5B19D45034C56E4E002E102E22300000000000000000000000000000000000000000000000000,723}D:MAXICOPY.BASHEXLINDATLIDDBYTPASCHKSUTOTA@ &X; ********************************&X; * *&X; * MAXICOPY 2.1 *(&X; * } *2&X; * Prog to copy multiple files. *<&X; * By Grant Albrecht *F&X; * }84/07/18 *P&X; * *Z&X; ********************************dX;n!xX; X; Equate }sX; ICCMDB ICADRD ICLENH ICAUXJ DLIST0 COPEN CGBIN CGTXT CPBIN CP }TXT CCLOS  OPINP OPOUT GOADR" DOSLOC , CIOV6 EOL@ EOFJ ZPGT ZP2^ FR }0h IFPr FASC| INBUFFX;X; Reserved memoryX;FNAMES AD1:A   AD1:A   AD1:A }   AD1:A   AD1:A   AD1:A   AD1:A&  0 AD1:A:  D AD1:AN  X AD1:A }b  l AD1:Av   AD1:A   AD1:A   AD1:A   AD1:A   AD1:A  X; }BUFF RDONE ;;# files readWDONE ;;# files written COUNT ;;# files to copyPART ;;Only part read? }EFLG ;;Error flag* FLAG 4X;>SLO ;;Start addr ofHSHI ;;file data.RX;\LLO ;;Length offLH }I ;;file.pX;zEOM ;;End avail mem FLEN  MODE  CHAN X;X;X; Messages used by programX; }MS1 }=A MAXICOPYA A by G. AlbrechtA=EOLMS2 AFile to copy?A=EOLMS3 AInsert source A Adisk:A=EOL }MS4 AInsert dest'n A Adisk:A=EOLMS5 AMore to copy?A=EOLMS6 =EOL;;(bell char)$"MS7 =ABREAK KEY ABOR }TA=EOL.X;8X; Actual code begins hereBX;LINIT CLOSE1;;Close files,V CLOSE2;;(just in case).` Q>4MS1j $>5MS1t } PRINT;;Print title.~X;%>iQ>LP1PRDONE8;;Initilize 1;;memory.ILP1X; Q>4FNAMES $>5FNAMESP }ZPG;;(Pointer to&ZPG;; filenames)X; QDLIST; S>;;Establish topPEOM;;avail memoryQDLIST;;as 1 pa }ge below(S>;;display list.2 PEOM<X;F X; The following loop acceptsP#X; filenames until just [RETURN]Z!X; is pre }ssed or sixteen namesdX; have been entered.nX;x$>LP2&COUNTASKQ>4MS2;;Ask for$>5MS2;;filename. PRINT }X;,Q>OZPG;;Put the name$ZPG;;into FNAME INPUT;;buffer.X;IOK;;Input Ok?)>;;BREAK key? }HASK;;No, retry.!ABORT;;Yes, abort.X;" OK%>, Q@ZPG76R>EOL;;Just [RETURN]?@FOUT;;Yes input done.J INCZP }G;;No.T $COUNT^2h(>;;Got 16 names?rDLP2;;No, get more.|X;&COUNT;;Yes.Q>4MS6;;Alert user by$>5MS6;;so }unding bell. PRINTX;OUTQ>;;Reset counterPRDONE;;for # read.X;SRCQ>4MS3;;Ask for source$>5MS3;;di }sk. PRINTQ>4BUFF;;Wait for user$>5BUFF;;to press INPUT;;[RETURN].X; $RDONE& ZLOOP;;Set FNAME pntr.0 } $RDONE:Q>4MEM;;Point to startDPZP2;;of availableNQ>5MEM;;memory.X PZP2bLP4&RDONElQZP2;;Keep the addrv }PSLO9;;where thisQZP2;;file is saved. PSHI9X;QEOM;;Calculate max;;;number of bytesSZP2;;that }can bePFLEN;;read into mem.QEOM;;And use thisSZP2;;as file lengthPFLEN;;when reading.X;HREAD; };If nil, then!WRITE;;write first.X; READQFLAG;;File open?FOVER1;;No, skip this. Q>;;Yes, so...*PFLAG;;R }eset flag.4Q>;;Set flag so>PPART9;;write routineH"WDONE;;will append.R!OVER2;;Skip file open.\X;f OVER1Q> }pPCHAN;;Open file onzQ>OPINP;;channel 1 for OPEN;;input.GER1X;OVER2$>;;Retrieve bytesQ>CGBIN;;fr }om the file. PUTGETINEND;;No errors?)>EOF;;EOF reached?FREND;;Yes.X;ER1 ERROR;;Report error,$RDON }E;;then continue.#EFLG9;;Flag it. Q> PLLO9;;Set file length PLHI9;;to zero.$ !RCLOSE;;And skip it.. }X;8 REND$RDONEB QICLENL PLLO9;;Save the lengthV QICLEN;;of the file.` PLHI9j QPART9;;Part writte }n?t R>~ DRCLOSE;;No. #PART9;;Yes, now fini. X; RCLOSE CLOSE1 $RDONE QLLO9;;Adjust memory ,;;point }er to OZP2;;next avail PZP2;;space. QLHI9 OZP2 PZP2 X;  INCZPG;;Next filename. $RDONE (COU }NT;;Finished read? EWRITE;;Yes, now write.( X;2 #RDONE;;No, increment< $RDONE;;counter andF !LP4;;keep readingP X; }Z X;d NEND$RDONE;; Only part ofn #PART9;;file read.x QICLEN;;Save file PLLO9;; length. QICLEN PL }HI9 #FLAG;;Set flag. X; WRITEQ>4MS4;;Ask for dest'n $>5MS4;;disk. PRINT Q>4BUFF;;And wait for $>5BUF }F;;user to press  INPUT;;[RETURN]. X; Q>;;Use channel 2 PCHAN;;for write. WMORE#WDONE;;(# written) $WDONE" }  ZLOOP;;Set FNAME pntr., $WDONE6 QEFLG9;;Err from read?@ HWCLOSE;;Yes,skip write.J X;T QPART9^ R>;;Part }written?h EWOVER2;;Yes, dont open.r X;| Q>OPOUT;;Open new file  OPEN;;for output. IWOVER2;;Error on open? X;  }ER2 ERROR;;Disp err msg, $WDONE;;and set flag. #EFLG9 X; WOVER2$WDONE QEFLG9;;Any error? HWCLOSE;;Ye }s skip write. X; QSLO9;;Point to start PZP2;;of file data. QSHI9 PZP2 QLLO9;;Get saved& PFLEN; };file length.0 QLHI9: PFLEND X;N $>;;Send the bytesX Q>CPBIN;;to the disk.b PUTGETl GER2;;Error on wr }ite?v X; WCLOSE$WDONE QPART9 FWCL R>;;Still part DNCLOSE;;read/write? Q>;;No, finished. PPART9 } WCL CLOSE2 X; "NCLOSE$WDONE;;Wrote all files (RDONE;;that were read? EWEND;;Yes. !WMORE;;No, write more. }X; WENDQPART9 HBAK (COUNT;;Finished?* FFINI;;Yes.4 BAK!SRC;;No, keep going.> X;H !ABORTQ>4MS7;;BREAK ke }y abortR $>5MS7;;message.\ PRINTf X;p FINIQ>4MS5;;Ask if morez $>5MS5;;files to copy. PRINT Q>4BUFF;;Accept } input. $>5BUFF INPUT GFINI;;Retry if error. QBUFF R> Y;;More to copy? HEXIT;;No. !INIT;;Yes, restart. }"EXIT!@DOSLOC:;;Indirect jump. X; !X; Establish pointer to FNAMES X;ZLOOPQ>4FNAMES PZPGQ>5FNAMES }$ PZPG.LP5 INCZPG80BHLP5L:VX;`!X; Increment pointer to FNAMESjX;tINCZPGQZPG~,O>PZPG DI }NCX #ZPG INCX:X;X; Display error messageX;ERROR'FR0;;Store error #Q>;;in floatingPFR0;;poi }nt register.X; IFP;;Convert to  FASC;;ASCII format.X;%>(EL1Q@INBUFF72GEL2;;Copy error #<L>;;to m }essage.F PERR#8P3ZHEL1dEL2PERR#8nX;xQ>4ERR;;Display error$>5ERR;;message... PRINTQZPG;;with n }ame$ZPG;;of file.X;X; Display message to screenX;PRINTPICADR &ICADR$> Q>CPTXT PICCMD }Q> PICLEN &ICLEN!CIO"X;,X; Message to display error6#X; (space reserved for filename)@X;JERR }=A } AT ANot copied A^ =AERROR 000Ah ==EOLrX;|"X; Puts/Gets bytes to/from diskX;PUTGETPI }CCMD9QZP2 PICADR9 QZP2PICADR9 QFLEN PICLEN9 QFLENPICLEN9!CIOX;X; Close file }1 or 2X;CLOSE1$> HCLOSE&CLOSE2$> 0CLOSEQ>CCLOS: PICCMD9D!CIONX;X X; Accept input from keyboardb }X;lINPUTPICADRv &ICADR$> Q>CGTXT PICCMDQ> PICLEN &ICLEN!CIOX;X; Same as BASICX }; OPEN #CHAN,MODE,0,BUFFX;OPENPMODE QCHANT? T?T? T?*>4 Q>COPEN> PICCMD9H QMODER PICAUX9\Q> }fPICAUX9pQZPGz PICADR9 QZPGPICADR9!CIOX; ;;(Safety buffer)X; X; Useable memory st }arts hereX; MEM X; GOADR INIT;;(Autorun file) *&X; * MAXICOPY 2.1 *(&X; * C|"8ABTSAB $} d&&;A,;A,;@ ,n x 6-B:,6-B:,6-% ;,% 6.067,.0%67$}@,.)6-&@ @)6-@)6-&@ @)6-@6-A:7<,,$A:7<,, 6$}.=:,6-B:,##6.=:A:,%A:7&%@<,,,$6-@B:,!$6-@67&%@<,.7,"@$}A6--6--6-A:7&&<&&,,%@'"@6-'6-@67&&<$}&&,.=:,'"@6-%@' A@5!@6-&@+6-&@5 A`"!"@(Ans$}wer: !, 6-B:,6-&@66-B:,&B:,% APD:MULTIPLY.BAS $X83A $$C=(MAXIMUM OF MEMORY MINUS 50)%%DELETE ALL REM(}S BEFORE ? FRE(0)TO FIND MAXIMUM MEMORY#26-I:,&@P&!B'g26-B'g(O ;,6.067,.0(},67@,.767,.1C6-O6-2ENTIRE DOUBLING ROUTINE<M--6-@$A:7&<&,,%9(}6-M @@FR6-&@6-@#"16-%@R67&&@<&&@,.1PD67&<(}&,.=:, %6-6(7B:,&?@ABCDEFGHIJKL,}MNOPQRSTUVWXYZ[,}\]^@_Ġby Clayton Walnum {6-@6-@'6-@36,}-@?6-@K6-@W6-@c6-@o6-@ {6-@6-@6-@'6-@36-,}@?6-@K6-@W6-@c6-@o6-@{6-@ 6-@!6-@w A"`)#-,}@'"%C:,%%) ()-%Ad%Ay"%) 2)-%A(%A"%) <)-%@$,}%A"%) F)-%A%A#"%) P4 -"68,-!68,-% 468@9,-Z,}""6A00d"6-P:H:,$,%"8,An "6-x 68,- @46-P:H:,$,%((6-P:H:,$,},%."46-A --2$-A$5-9 = A #AY2# A P& 2,}- #2&$22A!-A% /22$8 6-8,6-+&P:',$,$,P:',"'86,}-@3%6-P:',$P:',"'%6-&$; 6- 6-6-6-# /-@456-;6-776-$+ ,}* ,%$+!* ,%$+!*!,%$+ *!,776-$+"* ,%$+!*",%$+"*!,%$+ *",$ "6-H:, ?P,}$6-$ "6-H:, ?P$6-$ "6-H:, ?P$6-$ "6-H:, ?P$6-$",} 6--(>,T:,"A6 T:," 6-&%$@ 6-R:,*AJ. 6- 6-%+",$6%+",},$& .6-%T !%6-^7 -( -(>)-@%- 7 Ah-A $r$ 6-6,}-6-6-$6-8,|AAAA A0A@APA`ApAAA,}AA A0 6-6-6. ,,$ 6-6-6. , ,$ 6-6-6. ,, $ 6-6,}-6., ,$ 6-6-6.,, $ 6-6-6., , $# 6-6-6- 6. ,#$# 6-6-,}6- 6. , #$# 6-6-6- 6., #$) 6-6-6-6-&6. )$ 6-6. ,,,$ 6,}-6.,, ,$ 6-6., ,,$ 6-6.,,, $# 6-6-6- 6. , #$*** STATUS SCREEN ***,}&!) A02+AV-2(:!6-%P:H:,$,%6-&! DI+AY,}%AV1AR=A IAN''6-F:A`,%AV$F:Aa,%XK&@p%!%,}/%@"=%@#K%@$b) %@)@l7 - (-( !-)( /,}-7( v+-@0(7$&<$,%"+( +-@0( #-@0+( 4-@0( -,}4( - -( --( D -( Ġ#-@"-( MOVE9-@",}D( MAP /-@#(CAST$-@"/( STORE   -(N (S (E ,}(W -@3([[[[N - (THE MAGICAL STICK &-<(PICKS THY COMMANDNAY@4> ",}-"-A@6,20 4 >2=6-@"6- =AAPA@A` *** MOV,}E ***I -I(; N  W E  S  3-@"( !Af--@%3,}(*= -( %-=( 4. - (PICK THY DIRECTION(6-%.6->T:,",}A0H& T:," Af& A R* 6-R:,-@%"$(*6-\ "(6-f "(6,}-p "(6-z A@ "*6-& A P "*6-% A P "*6-% A P,} "*6-& A P?2AP- )25Af? A@:@@!6-,}% +-:(7$&<$,6-&&$+",  + 6-%"6-6-&% +6- g+AY,}AV+A7A CARg6-F:A`,%AV$F:Aa,%A&@q%!%)%1-}%9%A%K %%%)%@e:%F:A`,K%F:Aa,?@-?(%,,,-},,,,,,,,,,,,,, , ,VV(N , , , , , , , ,-}( ,,,,,,,,,,,,,,,,,E -(7<,-@7'(7<,--6(7<,<-E(7<,$+ 8,"6-P:H:,$,%""-}+68,-.( 8,!AY@4( AP8f 8,"A$A 6AY@4B-@(J(X-}-@P\ f A0BaAY@4!-@&-(Ρ5-C-@0QA$aA$&L-} 2  2VX+AV-7(ŠΠӡ@68,-N6-%AX A!` j-}( 6-6--(( t\ -\(N | -} |~WW(O | | | THY HP: ORC HP: |WW(O | -} | | STR: STR: |00(' @ 6-&6.Ӡ- } !6.=:,56.>:@:,%A(,@67<,.2 -(٠ΠӠ*-@(2( G -( -@1%(- } +-3( ?-@1G( G6-P:H:,$,%-*(7$&<$&,6-@%G(7$&<$&,2 -(7$- }&<$,(2AP22T:,A<6-&P:&',%-"( 26-&&$+",8 < 2 -6- }-P:H:,$,%!-2(7$&<$&,E-@1 (7$&<$&,&-5(7$&<$,E2AP5 2 -- }( '6-&5 A0+6-P:H:,$,%!6-%+ A =-AU2! +236--}&9 =  AB-AP62" ,246-&B A0( A2Q6-P:H:,$,%-}+#AV/A;ARA-Q( HE IS DEAD!<J -#( YOU FOUND  GOLD!+6-%468,-<6-%@ -}J APF1 8,"-@%%(-6-%1 P2 6-8,"-@'((2 A Z -( -}6-%d& 8,"-(&6-%n= 8,"6-P:H:,$,%"-5( =6-%x& 8,"-}-(&6-%; 8,"- ( +6-P:',3-7 ; * 6-%-*(PRESS THY TRIGG-}ERT:,A0 68,- APO+AVAR+A=A@TOAA-}_'6-F:A`,%AV$F:Aa,%5%@"C%@#Q%@$W_%-@@--}AY@4 6-  -%%(-  -%%( -  T:,"  AP A-}*** CAST SPELLS ***! !6-&6-! A`  -(  Ap? -?(1  -} >   "P -( %-;( A-P( WHAT ROOM?,T:,"A-}6T:,"A0@/ 6-R:,#6-%+",$%+",$6)!/6-J  6-T--@%( -# - -}A^C2AH#2AU32AFC2AChJC:,%@$@&*6-?:C:,%<,2-<-}2@ J A Pr*** STORE ***|6-&&$+",  %6-P:H:,$,%!@%6-Y  6-O6-}7@6<@u,.(------- WELCOME ALL ADVENTURERS! -------Y A0CC67@6<@u,.(---- SPECIAL TODAY: PERC-}ENT OFF! ----/  #67@V<@W,.10/6-?/ "#67@V<@W,.20/6-? / "#67@V-}<@W,.30/6-?0O+AYA+AVO6-F:A`,%AV$F:Aa,%E&@p-}-!%% --5%9 ?6-E6-[AR@#6-%)1%=@I@-}[AY@4;-@$6.7<@7%,*-/(7-;  T:,"'  A  A`- }F 6-6-6--F(& J -J(<   -!} & -"( YOU HAVE  GOLD.& # -#(CHOOSE THE DEPARTMENT&N -( -N(4magic -"}health  weaponsexit 0:  -( - :( MAKE THY PURCHASE :''A`A0-#}A A!D/ -/(!spellsgypsy brew N+ +AAAA X% 6- A p-$}6-%% A b)6-@` A p6-) A l 6- A pv9  -9('   -%} B-@'(7$&<$," .-@'8( B A / -/(!pie lodgingdoctor -&}+ +APAA`A % 6- A p6-%% A  6- A p36-P:H:,$,%6-%'-'}!@P36-@PE -7(THE DOCTOR HAS HEALED THEE --  HP --; E A  6- A p36-P:H:,$-(},%6-%'!A36-AE -7( A GOOD NIGHTS SLEEP! --  STR -- ; E A 1 -1(#dagger-)}s swordl sword+ +A @A PA `A # 6- A p6-# A )6-@0 -*}A p6-) A  )6-@P A p6-) A 6 -( 6-(6-P:&+&+$,,,6 A!@  6-+}- $*+ -2-! +24F -  $-6?0.282< F A>(-,}A!PH0 -0(" I THANK THEE FOR THY PURCHASE!R<-6?0$2@0( , 26-< A!P\I ---}.( ٠ŠӠϠҡ2 6 <6-?'I Af:AY-:( p-.}G -=(/press thy joystickbuttonG APz.+AV-.( ՠŠġ4 --/}( DO YOU WANT4( TO PLAY AGAIN? 8,"6-%+A&, -(SCORE: 7K:)-0}("@:N,4@7@:Y,A" -( w #A)@6-@P%6-A+6-16--1}76-=6-C6-O6-@`[6-@9a6-g6-m6-w @*** INITIALIZE ***X6-F:A,& A-2}$+H6-F:A`,%AV$F:Aa,%P%X%C %%A+AR36-%;6-%C6-%-3}D -( dragonlord-%(1-@"D( -(ONE MOMENT PLEASEUU9,9,;AU,-4};,;,;@(,;,;A ,;@@,;@@, $$;,9,;,;,;@, (67,. 67A ,.-5} (67,. T67,. 67A ,. (67,.2#A3p@-@@D"P67,.>:,T $ c 6-6-6-!6-@`-6}'6-36-@P?6-AE6-Q6-@9W6-]6-c6-. o6-A6-A'6-Ap36-A?6--7}A!pK6-A`W6-A`c6-Apo6-A08 __6.U| | | || -8} |B hh67@,.U |    -9}L hh67Aq,.U| || ||  | |V A&6.NONE D-:}AGGER S SWORDL SWORDA6.northeast southwest ` [[6.Q-;}j O 6-%6-$AV%A1A=AOAA$t A -"67,.>:, +-<}6-?:C:,,7AVA @0~ <<104,104,104,162,255,160,58,202,208,9,136,208,6,170,202 55138,208,241,96,142,10,212,1-=}42,22,208,24,144,235 0,248,60,102,102,126,231,0 !!0,252,102,252,102,102,124,0 0,254,102,112,240,102,62,0 !!0,->}248,108,102,230,108,124,0 0,254,96,124,224,102,126,0 0,254,99,252,108,96,96,0 0,254,102,96,238,102,62,0 0-?},118,54,126,54,54,118,0 0,126,24,60,24,24,126,0 0,14,6,6,246,102,60,0 !!0,230,110,248,120,110,102,0 0,240,9-@}6,224,96,118,126,0 0,227,119,255,107,99,119,0 !!0,230,118,126,126,110,246,0 !!0,254,102,230,102,102,126,0( 0,2-A}52,102,238,124,96,112,02 !!0,254,102,230,102,108,118,0< !!0,252,102,230,124,108,118,0F 0,254,96,126,6,102,126,0P -B}0,126,216,24,24,24,28,0Z !!0,230,102,230,102,126,124,0d 0,230,102,230,102,126,24,0n 0,227,99,235,127,119,99,0x -C}0,230,102,60,60,102,118,0 0,230,102,60,24,56,56,0 0,254,108,24,48,102,126,0 %%170,170,170,170,170,170,170,170 -D}!!0,254,102,238,118,102,126,0 0,24,120,120,24,24,126,0 0,124,102,76,24,54,126,0 0,126,206,24,12,102,62,0 -E}0,12,28,60,108,254,12,0 0,254,96,252,6,102,124,0 !!0,124,224,124,230,102,126,0 0,254,102,12,24,48,48,0 0,6-F}0,102,60,230,102,254,0 0,254,102,254,6,12,56,0 0,60,102,219,195,0,0,0 24,28,6,54,54,6,28,24 24,56,96,108,-G}108,96,56,24" 24,24,12,198,230,62,0,0, 0,0,62,230,198,12,24,246 24,24,48,99,103,124,0,0@ 0,0,124,103,99,48,24-H},24J 0,0,0,195,219,102,60,0T %%255,255,255,255,255,255,255,255^ !!247,247,0,189,189,0,247,247h %%255,255,195,129,12-I}9,129,195,255r *** ROOM DATA ***| 4,6,6,9,6,9,6,9,6,6,5 1,9,9,8,5,2,4,8,9,9,3 12,11,2,4,3,2,1,5,2,11,12 !-J}!7,6,10,10,6,10,6,10,10,6,15 11,12,2,1,5,2,4,3,2,12,11 4,8,8,9,3,2,1,9,8,8,5 1,6,6,8,6,8,6,8,6,6,3 cc1,2,2-K},2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7 BB7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7-L},7,7,7,7,7,7,7,7,7,7,7,7,8,-1 5@@'@56-?:C:,<,  -(7AT<Ap, :-@&-M}((-@":(  $@-$(  5 -5('-N} 5 -5('|)################'|)################'| 5 -5('|% NAME: $|% WEAPON: $| 5 --O}5('|% $|% $|& 5 -5('|% HP: $|% SPELLS: $|0 5 -5('|% -P} $|% $|: 5 -5('|% STR: $|% SERUM: $|D 5 -5('|% $|% -Q} $|N 5 -5('|% PIE: $|% GOLD: $|X 5 -5('|(****************&|(****************&|b 5 -5('-R}l 5 -5('v 5 -5('|)################'-S}||Ġ||)####'| 5 -5('|% ROOM: $|| MOVE ||% $| 5 -5('|% EXITS: $|| MAP ||(****&-T}| 5 -5('|(****************&|| CAST | C --(| STORE |3-C(  `-U}@@!-`(:,,,,,,,,,,,,,,,,,, , , , , 4 -4(&, , -V} ,,,,,,,,,,,,,,,,,, V -V(H,,,,,,,,,,,, , , , press , , , TT(L , thy -W} , , , , joystick , , , @@(8 , button , , , ,,,,,,,,,-X},,, [ -[(M SPELLS: 10 5 PIE : 10 DAGGER : 10 WW(O GYPSY : 20 LODGING:-Y} 15 S SWORD: 30 BREW : 60 DOCTOR : 15 L SWORD: 50 1+AVAR1AA` 3 -3(%WHAT W-Z}ILL BE THY NAME FOR THIS QUEST? & -"(---------& & -7<,0- & AP 1 A006.-[}7<&,'' AP1 B *** CL$ DATA **** gg104,104,104,133,205,165,88,133,203,165,89,133,204,162,0,169,0,168,-\}145,203,200,208,251,232,228,2054 88240,11,24,165,204,105,1,133,204,240,234,208,232,96> *** MV$ DATA ***H PP104,162,4,-]}160,0,177,205,145,203,200,208,249,230,206,230,204,202,208,242,96 D:DRAGON.BASIDROORCOROROOMPORSNDCS,U10 ; **************************20 ; * MEMORY CLEANER *30 ; **************************40 ;50 ; A=USR(ADR,PAGES)601_} ;70 ; ADR=ADDRESS OF ROUTINE80 ; PAGES=# OF PAGES TO BE CLEARED90 ;0100 *= $50000110 ;0120 ; ***EQUATES***0130 ;1`}0140 SAVMSC = $580150 PAGES = $CD0160 TMPSCR = $CB0170 ;0180 ; ***INITIALIZE***0190 ;0200 PLA ; # OF ARGUM1a}ENTS0210 PLA ; HI-BYTE: IGNORE0220 PLA ; # OF PAGES0230 STA PAGES0240 LDA SAVMSC ; GET S1b}CREEN ADDRESS0250 STA TMPSCR ; AND STORE IT0260 LDA SAVMSC+1 ; IN TEMP WORK AREA0270 STA TMPSCR+10280 ;02901c} ; ***MAIN PROGRAM***0300 ;0310 LDX #$00 ; ZERO PAGE COUNTER0320 NEXT LDA #$00 ; LOAD WITH BLANK0330 TAY 1d} ; ZERO INDEX0340 CLEAR STA (TMPSCR),Y ; CLEAR ONE BYTE OF MEMORY0350 INY ; INCREMENT INDEX0360 BNE CL1e}EAR ; GO CLEAR NEXT BYTE0370 INX ; INCREMENT COUNTER0380 CPX PAGES ; ALL DONE?0390 BEQ END ; Y1f}ES0400 CLC ; NO, MOVE #HTӑHQf Q f HTԊf THYH^?EXT ; GO TO CLEAR0450 BNE NEXT ; NEXT PAGE0460 END RTS ; BACK TO BASIC30 STA TMPSCR+10440 BEQ N0[B'DOS SYSB+ROBFIX LSTB-RAMDISK BASB ;RAMCASS BASBGRAMCHECKM65BaRAMOS BASB fRAMOS M65BrMAXICOPYBASB>MAXICOPYM65BMULTIPLYBASBDOUBLER BASBDRAGON BASB ^DRAGON ASMBqREVIVE BASBREVIVE M65BCHEEP1 BASBCHEEP2 BASBBOOT1 BASB BOOT2 ASMBBOOT5 BASBBOOT6 ASMBBOOT8 BASBBLINE BASB.BLINE M65BHEXCHARTBASB$MENU B5AUTORUN SYSB8REVIVE B:RAMOS OBJ?S %%REVIVE LOADER by P.ALTMAN 10/84T (} A09@@D:REVIV5r}EQ(Ǡ٠T(u*@AU)*@AU<*@@TO*@@1b*@@s5s}u*@@1(,-@@ "(*@, 2O*@A)*@@1<*@A5t}O*@@1<,-@@"(*@, FO*@@)*@@5<*@@O*5u}@@5P,-@@"(*@, ZO*@AG)*@@3<*@AHO*5v}@@4d6-@A! A%"2*@6 nu*@A$)*@@<*@A%5w}O*@@b*@Au*@@2x6(,(!ˠŠ٠6 A@( 5x}ˠҡ@::77,111,100,105,102,105,101,100,32,98,121,32,80,46,6576,84,77,65,78210,197,214,201,5y}214,19782,69,86,73,86,69::169,49,72,169,244,72,160,2,185,124,29,136,201,58,20877248,185,124,29,201,65,144,2,1695z},49,41,3,133,33,3266100,17,32,158,14,169,4,141,87,15,32,33,15,169,2733141,87,15,176,8,172,5,19,185,1,20,48,3,76,1915{}6618,169,66,153,1,20,173,7,19,10,10,157,129,19,185664,20,157,137,19,185,5,20,157,138,19,32,113,16,3277146,16,174,1,5|}19,32,36,16,169,81,141,241,16,169,56::141,249,16,169,233,141,250,16,141,1,17,32,197,16,169<<17,141,241,16,169,24,141,5}}249,16,169,105,141,250,16,141551,17,32,23,16,144,212,32,149,16,32,155,18,208,5"169,1,32,27,18,76,119,32 D:REV5~}IVE.BAS?S %%REVIVE LOADER by P.ALTMAN 10/84T (} A09@@D:REVIV4 X;***********************X;* REVIVE *X;* *(X;* File Rescue Utility *2X;* 9} *<X;* by Philip Altman *FX;* *PX;***********************ZX;dX;*** DOS EQUA9}TES ***nX;xICDNOZ!;;DRIVE #FNDCODE;;FNAME DECODESFDIR!;;DIR SEARCHRDNSO;;READ SECTORWRTDIR9}q;;WRITE DIRECTORYRDVGO;;READ VTOCWRVTOC;;WRITE VTOCFRESECT;;FREE/ALLOC SECSETUPd;;INIT DOS 9}I/ODD1;;REWRITE BT SECSTSTDOS;;TST FOR DOS.SYSERDVDC;;INVALID CMDCURFCB;;CURRENT FCBCDIRD9};;DIR DISPLACEMNTSFNUM;;CURRENT FILE #FCBFNO;;JUSTIFIED FILE#FCBCSN;;CURRENT SECTOR"X;,X;*** 9}DUP EQUATES ***6X;@PAR|;;PARAMETER AREAJMENUw ;;DUP ENTRYTCIOER1;;CIO ERR RET ADR^X;h6rX;| AMo9}dified by P.ALTMANAX;X; AAX; #X; AREVIVEAX;!X;Q>5CIOER;;STACK CIO9}5;;ERROR RETURNQ>4CIOER;;ADRS FOR DOS5%>;;FIND ":" IN&FDQPAR8;;FILE NAME01:R> :DHFDNQPAR8;;TEST 9}DRIVE IDXR> AbDGOTNUM;;BR IF NUMERIClQ> 1;;DEFAULT=#1vGOTNUMM>;;CONV FROM ASCIIPICDNOZ;;SAVE DRIVE # SETU9}P;;INIT DOS I/O FNDCODE;;DECODE FNAMEQ>;;DON'T SKIPPW;;DELETED FNAMES SFDIR;;SEARCH DIRQ>;;FOR DELETD 9}FILEPW;;RESTORE CODEEREVXT;;BR IF ABSENT%CDIRD;;CUR DIR DISPLQ8;;MAKE SURE WASGDELFIL;;DELETED FILE9}REVXT!ERDVDC;;ELSE ERRORDELFILQ>B;;MAKE GOOD P8;;DOS 2 FILEQSFNUM;;GET FILE # T?;;SHIFT LEFT X2*T?4PFC9}BFNO9;;SAVE FOR ID>Q8;;GET FIRST FILEHPFCBCSN9;;SECTOR #RQ8;;MAKE IT CURRENT\PFCBCSN9;;SECTOR #f WRTDIR9};;FIX DIRECTORYp RDVGO;;READ VTOCz$CURFCB;;RESTORE FCB PTR $;;GET CUR SEC PRMSECLPQ>Q;;CHANGE FRESECTP;9};SO VTOC BYTESQ>8;;RE-ALLOCATEDP;;TO FILEQ>PP FRESECT;;UPDATE VTOCQ>;;RESTORE FRESECTP9};;IN CASE ERRORQ>;;IN SECTOR READPQ>iPP$ RDNSO;;READ NXT SECTOR.DSECLP;;DO UNTIL EOF8 9}WRVTOC;;FIX VTOCB TSTDOS;;WAS IT DOS.SYS?L HEXITVQ>;;SHOW DOS THERE` DD1;;REWRITE BT SECSjEXIT!MENU;;BACK TO 9}DUPtX;~ MENU****X;* REVIVE *X;* *(X;* File Rescue Utility *2X;* 8_sdD6-F:B@,&B@&@8B@A'DB@n Ax=}-@@" F:B@,!A(A0'B@%@d#B@' "ii27,7,45,15,53,4,4,18,12,=}55,55,55,3,12,43,3,26,11,15,15,45,24,24,1,34,3,8,24,16,0,9,22,13,12,44,55,3,!!50,19,1,9,3,13,23,23,1,41,0 D:C=}HEEP1.BAS_sdD6-F:B@,&B@&@8B@A'DB@n Ax<  I************************* FA}IRST WORDS ** by Lee Brilliant MD. ** for CHEEP TALK ** 1984 *********A}**************** A"-@" F:B@,!A'@0#bB@%@d#B@A}' ;6-@#@MB@@d_B@b$04,43,60,5313,46,15,112 2,13,3134,29,14,194A}3,40,40,5855,40,40,6,35,267,55,55,12,12,2,41,5577,55,55,7,7,35,12,1183,20,2,1394,11,24,6,11A A}1,20B 2,63,19C3,55,55,19D 2,33,19E 1,19F4,7,7,40,40G 2,10,19H4,20,1,2,50I 2,24,6J3,1A}0,20,20K3,42,7,20L3,7,7,62M3,7,7,16N3,7,7,11O 1,53P 2,9,19Q3,42,49,31R 1,59S4,7,7,5A}5,55T 2,13,19U 2,49,31V 2,35,19W7,33,15,1,63,62,49,31X6,7,7,2,41,55,55Y 2,46,6Z 2,43,19_6618A},14,23,44,3,42,19,4,4,17,39,6,4,15,2,36,7,7,11dD6-F:B@,&B@&@8B@A'DB@n6-@A}6-@x) +@A@D) A}'@@d'B7t@d##@@A}K:)@8F:A,"A(*A86-&A(8F:A,@d*A@d86-A}&@2!!!@G* @YA0!!!@d* @A0%2@A@@96-@#A}@[2@A@@o6-@#@2@#@ @ AdA}AU A`)-%@%@)(@>:,# @ l6-P:H:,$@,76-P:H:,$@A},F(@}P AbAdAUl A`c3A@%@$P:H:,$@,cA@A}$P:H:,$@,%@N @B,!/%@7/%@%@E/%@K/N$ D:CHEEA}P2.BASI************************* F@ !!LHRAN*** RANDOM NUMBERS *** NUMBERS OUT OF A HAT (BAS)##SLOW WAE}Y TO GET THE JOB DONE! $$(ENTER RANDOM # RANGE (LO,HI) @%%6-F:B7p,%F:B7p,$AV(E} )!@02( @0 D:BOOT1.BAS** RANDOM NUMBERS *** NUMBERS OUT OF A HAT (BAS)##SLOW WAD50100 LOWL = $CB ;LOW LIMIT0110 LOWH = $CC0120 HIGHL = $CE ;HIGH LIMIT0130 HIGHH = $CF0140 RESLO = $D4 ;BASII}C'S RESULT0150 RESHI = $D50160 RANDOM = $D20A ;RANDOM # 0-2550170 ;0180 *= $0600 ;ROUTINE START0190 ;0200 CI}LD ;CLEAR DECIMAL0210 LDA #0 ;SET DEFAULT0220 STA LOWL ;LOW RANGE0230 STA LOWH ;VALUE0240 I} PLA ;GET #ARGS0250 CMP #1 ;ONE ARGUMENT?0260 BEQ PULLHI ;YES! GET HI0270 PLA ;PULL I}LOW HI0280 STA LOWH ;AND SAVE IT0290 PLA ;PULL LOW LO0300 STA LOWL ;AND SAVE IT0310 PULLHI PLA I} ;PULL HIGH HI0320 STA HIGHH ;AND SAVE IT0330 PLA ;PULL HIGH LO0340 STA HIGHL ;AND SAVE IT035I}0 GETRND LDA RANDOM ;GET RANDOM #0360 STA RESLO ;SET LO BYTE0370 LDA RANDOM ;GET RANDOM #0380 STA RESHI ;I}SET HI BYTE0390 CMP HIGHH ;TOO BIG?0400 BCC CHEKLO ;NO, TOO SMALL?0410 BNE GETRND ;TOO BIG!0420 LDA RI}ESLO ;IS LOW BYTE0430 CMP HIGHL ;TOO BIG?0440 BCC CHEKLO ;NO, TOO SMALL?0450 BNE GETRND ;TOO BIG!0460 CI}HEKLO LDA RESHI ;IS RAND #...0470 CMP LOWH ;TOO SMALL?0480 BCC GETRND ;YES!0490 BNE RANDOK ;IT'S OK!0500I} LDA RESLO ;IS LOW BYTE...0510 CMP LOWL ;TOO SMALL?0520 BCC GETRND ;YES!0530 RANDOK RTS ;IT'S OK, EI}XIT!LDA RESLO ;IS LOW BYTE...0510 CMP LOWL ;TOO SMALL?0520 BCC GETRND ;YES!0530 RANDOK RTS ;IT'S OK, EH  2|DRAN@*** RANDOM NUMBERS *** NUMBERS OUT OF A HAT (M}ASM)##FASTER THAN BASIC, STILL SLOW 79A,$-A368,-A7 1 +@$'0@M}1@1-A6A"!% 16-A6(6-?:<<A,2 68,-8,&@M} ,8,< @@dcc216,169,0,133,203,133,204,104,201,1,240,6,104,133,204,104,133,203,104,133,207,104,133,206,173nddM}10,210,133,212,173,10,210,133,213,197,207,144,10,208,240,165,212,197,206,144,2,208,232,165,213x66197,204,144,226,208,6,16M}5,212,197,203,144,218,96 D:BOOT5.BAS*** RANDOM NUMBERS *** NUMBERS OUT OF A HAT (L,0100 LOWL = $CB ;LOW LIMIT0110 LOWH = $CC0120 HIGHH = $CE ;HIGH LIMIT TEMP0130 RANGEL = $CF ;RANDOM # RANGE0Q}140 RANGEH = $D00150 RESLO = $D4 ;BASIC'S RESULT0160 RESHI = $D50170 RANDOM = $D20A ;RAND # REGISTER0180 ;0190 Q}*= $0600 ;SUBROUTINE START0200 ;0210 CLD ;BINARY MATH!0220 LDA #0 ;INITIALIZE...0230 STA LOWLQ} ;LOW RANGE...0240 STA LOWH ;DEFAULT (0)0250 PLA ;GET # OF ARGS0260 CMP #1 ;1 ARGUMENT?027Q}0 BEQ ARG2 ;YES!0280 PLA ;PULL AND STORE0290 STA LOWH ;LOW RANGE0300 PLA 0310 STA LOWLQ}0320 ARG2 PLA ;PULL AND STORE0330 STA HIGHH ;HIGH RANGE (HI)0340 PLA ;PULL HIGH LO0350 SEC Q} ;SUBTRACT...0360 SBC LOWL ;LOW LIMIT...0370 STA RANGEL ;FROM...0380 LDA HIGHH ;HI LIMIT...0390 Q} SBC LOWH ;AND GET THE...0400 STA RANGEH ;RANDOM RANGE!0410 LDA #$FF ;INIT LOW MASK0420 STA LOMASK043Q}0 LDX #0 ;START W/HI BIT0440 HILOOP LDA BITS,X ;GET TEST BIT,0450 AND RANGEH ;IS IT ON?0460 BNE GOTHLM Q};YES! GET HI MASK0470 INX ;NEXT BIT0480 CPX #8 ;DONE ALL 8?0490 BNE HILOOP ;NO, LOOP BACK.0500 Q} STA HIMASK ;ZERO HI MASK,0510 TAX ;ZERO X REGISTER0520 LOLOOP LDA BITS,X ;GET TEST BIT,0530 AND RANGEQ}L ;IS IT ON?0540 BNE GOTLLM ;YES! GET LO MASK0550 INX ;NEXT BIT0560 CPX #8 ;DONE ALL 8?0570 Q} BNE LOLOOP ;NO, LOOP BACK0580 STA LOMASK ;ZERO LOW MASK0590 BEQ RNDIT ;NOW GET RAND#!0600 GOTHLM LDA MASKS,XQ} ;GET MASK,0610 STA HIMASK ;SAVE IT,0620 JMP RNDIT ;AND GET RAND#!0630 GOTLLM LDA MASKS,X ;GET MASK0640 STQ}A LOMASK ;AND SAVE IT.0650 RNDIT LDA RANDOM ;GET RANDOM #0660 AND HIMASK ;MASK IT OFF,0670 STA RESHI ;SAVE HI Q}RAND#0680 LDA RANDOM ;GET ANOTHER,0690 AND LOMASK ;MASK W/LOW MASK0700 STA RESLO ;AND SAVE IT.0710 LDQ}A RESHI ;IS HI BYTE0720 CMP RANGEH ;>LIMIT?0730 BCC LOWOK ;NO, BOTH OK!0740 BNE RNDIT ;TOO BIG, RETRY!Q}0750 LDA RESLO ;IS LOW BYTE0760 CMP RANGEL ;>LIMIT?0770 BEQ LOWOK ;NO, IT'S =, OK!0780 BCS RNDIT ;TQ}OO HIGH, RETRY!0790 LOWOK LDA RESLO ;NOW FINISH...0800 CLC ;BY ADDING...0810 ADC LOWL ;BASE VALUE...08Q}20 STA RESLO ;TO RANDOM...0830 LDA RESHI ;NUMBER...0840 ADC LOWH ;AND RETURN...0850 STA RESHI ;TOQ} BASIC!0860 RTS 0870 ;0880 ;DATA ITEMS0890 ;0900 BITS .BYTE $80,$40,$20,$100910 .BYTE $08,$04,$02,$010920 MASKQ}S .BYTE $FF,$7F,$3F,$1F0930 .BYTE $0F,$07,$03,$010940 LOMASK .BYTE 00950 HIMASK .BYTE 00960 .END 2,$010920 MASKPn  2DRAN@*** RANDOM NUMBERS ***MASKING METHODFAU}STER THAN THE HAT! 79A,$-A368,-A7 1 +@$'0@1@U}1-A6A"!% 16-A6(6-?:<<A,2 68,-8,&@ ,8,< @@U}dbb216,169,0,133,203,133,204,104,201,1,240,6,104,133,204,104,133,203,104,133,206,104,56,229,203n__133,207,165,206,229,2U}04,133,208,169,255,141,150,6,162,0,189,134,6,37,208,208,26,232,224,8x^^208,244,141,151,6,170,189,134,6,37,207,208,19,232,2U}24,8,208,244,141,150,6,240,15,189,142WW6,141,151,6,76,88,6,189,142,6,141,150,6,173,10,210,45,151,6,133,213,173,10,210,45U}cc150,6,133,212,165,213,197,208,144,10,208,232,165,212,197,207,240,2,176,224,165,212,24,101,203TT133,212,165,213,101,2U}04,133,213,96,128,64,32,16,8,4,2,1,255,127,63,31,15,7,3,1 0,0 D:BOOT8.BASS ***MASKING METHODFATV+,n DATHEXLINTOTADATLIDDBYTPASCHKSU@Y} *************** B-LINE ** by *(* A. Giambra *2***********Y}***<990,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15Fs;@,9@",/-@"3"<68,-@ Y}L6-AV#A` APs(}CHECKING DATAPV6-6-%@/-@@;(LINE:?"VB:,@Y}AZF%6-F:A,%F:A,$AV+C(LINE  MISSING!Fdj$-@B:,&@@86-@:Y}7,,&@HT6-@:7%@,,&@Hj6-8,$@%8,n."@*@ $". @x6-%8,%8Y}, ""@ A33F:A,@*F:A,@A":@@Y} D:AUTORUN.SYSF6-@R6-A\#Af Apy(}CREATING FILE @@0B:,"Y}@*"A & A`0 @(BAD DATA: LINE jjFFFFFC1CAB1DAD0A1D850CAD0B1D850D4C74E4200000A9FC850AA9Y}1C850BA200BD1A03F075C945F02EC953F005E8E8E8,706jjD0EEBD1B0385CBBD1C0385CCA006B1CB1869018D2A1F8D1A1FC8B1CB69008D2B1F8D1B1F4Y}C231DBD1B0385CBBD1C0385,698jjCCA9AC9D1B03A91D9D1C03A000B1CB99AC1DC8C00DD0F6ADB01D1869018DBA1DADB11D69008DBB1DA9B938E9018DY}B01D,721jjA91DE9008DB11D4C231DA907A0C8A21E205CE4A9448DE702A91F8DE802A9008D421F8D411F60B91DB41E20000008C080,613jjF009CY}99BF00EE6CF4CD11DA9008D411FA99B2860AD411FF010A90A85D0A9018D421FA90085C24C091E98488A48A4CFA9,684jj9B998005A000B98005D9351FY}D008C8C004D0F320111E68AA68A8A90085CFA99B2860B98005C99BF075C8A200B98005C9,614jj2CF00BC99BF0079D391FC8E810EE9D391FA90085F22Y}0BF1E98482000D820D2D9A5D485CBA5D585CC68A8B98005C99BF0,716jj32C8A200B98005C930900BC93AB0079D391FC8E810EEA9209D391FA90085F2Y}20BF1E2000D820D2D9A5D485CDA5D585CE,654jj4C991EA90A85CDA90085CE4C991EA90A85CB85CDA90085CC85CE2051DA38A5CBE5CD85CBA5CCE5CE8Y}5CCA90A85D0A900,776"jj85C2A9018D41B51E381F1F8D421FA99B8D800560A93985F3A91F85F460AD421FF052A5C2F04EA5D0F005C6D04C1F1FA9,679Y},jj008D421FA5CB1865CD85CBA5CC65CE85CCA5CB85D4A5CC85D520AAD920E6D8A000B1F31005297F4C0B1F99391FC810F1,7056jj99391F8C431FEY}E431F20221FA9202000002051DA4C62E4A0009848B9391F20000068A8C8CC431FD0F0604155544F411F,544@ZZ601F000000A9FC850AA91C850BA50C8DY}0A1DA50D8D0B1DA909850CA91D850D4C141DE002E102441F,497 D:BLINE.BASXHldX; *******************nX; * *xX; * B-LINE *X; * *X; * by ]} *X; * *X; * A. GIAMBRA *X; * *X; *******************X;X;X]};X; OS EQUATESX;HATABS LBUFF FASC IFP" AFP, FPI6INTLBFQ@ VBXITbJ ]}SETVB\TWARMSTARTt^ MEMLOh FROr INBUFF| CIX DOSVEC  DOSINI X;X; WORK VARIABLES]}X;CR;;CARRIAGE RETURN COMMA, SPACE  PROMPT;;BASIC PROMPT CHARNUM;;BASE NUMBERINCR;;INCR]}EMENTCHARCOUNT;;COUNTERINDEX;;WORK INDEXTIMER;;VB TIMERX;X;&DOSQRESET0PDOSINI;;RESTORE D]}OSINI: QRESETDPDOSININ!WARMSTART;;DO WARMSTARTX'RESET ;;CHANGED TO JSR TO DOSINIb Q>4DOSlPDOSVEC;;POI]}NT DOSVECvQ>5DOS;;TO OUR ROUTINEPDOSVECLOOKUP$>$SEARCHQHATABS9;;EXAMINE HANDLERFFINI;;ENTRYR> E;;I]}S IT THE EDITOR FFOUNDEDR> S;;IS IT THE SCREEN FFOUNDSCRCONT2;;GO TO NEXT 2;;ENTRY2 HSEARCH&FOUNDSCRQ]}HATABS9;;STORE SCREENPINDEX;;HANDLER ADDRESS QHATABS9 PINDEX %>;;OFFSET TO*Q@INDEX7;;PUTBYTE VECTO]}R4,>O>;;ADD 1HPPUTCHAR;;MODIFY OUR JSRRPMAKESPACE\3f Q@INDEX7pO>zPPUTCHARPMAKESPACE ]}!CONTX;$FOUNDEDQHATABS9;;LOAD VECTORPINDEX;;PUT IN INDEXQHATABS9 PINDEXQ>4HANDLER;;POINT HAND]}LERPHATABS9;;TO OUR TABLEQ>5HANDLERPHATABS9%>MOVEQ@INDEX7;;GET OS TABLEPHANDLER8;;MOVE TO OUR]}3;;LOCAL TABLE)> ;;ARE WE DONE?$ HMOVE.QHANDLER;;GET GETBYTE8 ,;;VECTORBO>;;ADD 1LPGETB;;MODIFY OUR]}VQHANDLER;;JSR`O>j PGETBtQ>4GETB;;POINT TABLE TO~;;;OUR OWN ROUTINES>PHANDLER Q>5GETBS>]}PHANDLER !CONTX; FINIQ>%>4INTERRUPT;;FIRE UP VB$>5INTERRUPT;;ROUTINE SETVB Q>4ENDPPMEM]}LO;;POINT MEMLO Q>5ENDP;;TO END OF OURPMEMLO;;PROGRAMQ>(PENDLINE;;CLEAR WORK2PSWITCH;;REGISTERS<:FX;]}PHANDLER  ;;HANDLER TABLEZX;dGETB ;;JSR TO OSn6;;GETBYTE ROUTINEx)>;;BREAK PRESSED? FBRK;;YESR>CR;^};CARRIAGE RETURN?FPROCESS;;YES, PROCESS IT#CHARCOUNT;;COUNT CHARACTER !NOBRKX;BRKQ>;;SHUT OFF AUTONUM P^}SWITCHQ>CRNOBRK8;;RESTORE STATUS:X;$PROCESSQSWITCH;;AUTONUM ACTIVE?FAROUND;;NO, PARSE LINEQ> ;;SET^} VB TIMER PTIMER"Q>;;SET ENDLINE FLAG, PENDLINE6Q>;;CLEAR BASIC'S@PPROMPT;;PROMPT REGISTERJ!XITTX;^AR^}OUNDC;;SAVE X AND Yh5rA|5%CHARCOUNTQ>CR;;STORE A RETURNPLBUFF8;;IN BASIC BUFFER%>#COMPAREQLBUFF8;;^}COMPARE BUFFERRTABLE8;;TO 'AUTO' HEXIT3)>;;ARE WE DONE? HCOMPARE AUTONUM;;DO AUTONUMEXIT7;;RESTORE ^}X AND Y>7?XITQ>;;CLEAR CHARCOUNT&PCHARCOUNT0Q>CR;;RESTORE ACCUM:8;;RESTORE STATUSD:NX;X#AUTONUMQ^}LBUFF8;;LOAD NEXT CHARbR>CR;;CARRIAGE RETURN?lFDEFAULT;;YES, NO PARAMSv3$>#GETNUMQLBUFF8;;GET BASE NUMBER^}R>COMMA;;DONE?FGETNEXT;;YESR>CR;;DONE?FGETNEXT;;YESPBUFF9;;SAVE CHARACTER 3;;IN BUFF2 IGETNUMGE^}TNEXTPBUFF9;;SAVE CHARQ>;;RESET CIXPCIX POINT;;INIT INBUFF C 5;;SAVE Y  AFP;;ASCII TO FP* FPI;;FP TO ^ }INTEGER4QFRO;;GET BASE>PNUM;;STORE IN NUMH QFROR PNUM\7f?;;RESTORE YpQLBUFF8;;GET NEXT CHARzR>CR;;R^ }ETURN?FSETINCR;;YES, NO INCR3$>#NEXTNUMQLBUFF8;;LOAD NEXT CHARR> 0;;IS IT BETWEENDCONVERT;;0 AND 9?^ }R> : ECONVERTPBUFF9;;YES, SAVE IT32 INEXTNUMCONVERTQ>SPACE PBUFF9;;STORE A SPACE Q> PCIX;;RESE^ }T CIX$  POINT;;INIT INBUFF.  AFP;;ASCII TO FP8  FPI;;FP TO INTEGERB QFROL PINCR;;STORE INCRV QFRO` PINCRj^ } !STARTt X;~ SETINCRQ> ;;SET INCR AT PINCR;;THE DEFAULT (10) Q> PINCR !START X; DEFAULTQ> ;;SET B^}ASE AT PNUM;;THE DEFAULT (10) PINCR Q> PNUM PINCR START INTLBF ; QNUM;;LOAD BASE SINCR;;SUB^}TRACT INCR PNUM( QNUM2 SINCR< PNUMF Q> ;;SET VB TIMERP PTIMERZ Q>;;RESET BASIC'Sd PPROMPT;;PROMPT ^}REGISTERn Q>x PSWITCH;;AUTONUM ACTIVE PENDLINE;;SET ENDLINE Q>CR;;RETURN A CR TO PLBUFF;;BASIC : X; POIN^}TQ>4BUFF;;POINT INBUFF PINBUFF;;TO OUR BUFFER Q>5BUFF PINBUFF : X; X; VB INTERRUPT ROUTINE X; %INTERRU^}PTQENDLINE;;LINE ENTERED? FEXITVB;;NOT YET QPROMPT;;DID BASIC FINISH" FEXITVB;;WITH IT YET?, QTIMER;;WAIT TEN JIFF^}IES6 FOK@ "TIMERJ !EXITVBT X;^ OKQ>;;RESET ENDLINEh PENDLINEr QNUM;;GET BASE| , OINCR;;ADD INCREMENT PN^}UM;;SAVE IT QNUM OINCR PNUM QNUM;;GET BASE PFRO;;PUT IN FP REGISTER QNUM PFRO  IFP;;IN^}TEGER TO FP  FASC;;FP TO ASCII %> !WRITEITQ@INBUFF7;;GET A BYTE IWRITENUM M>;;TURN OFF HIGH BIT !DONE& X^};0 WRITENUMPBUFF8;;SAVE IT: 3D IWRITEITN DONEPBUFF8;;SAVE ITX 'LENGTH;;SAVE LENGTHb #LENGTH;;INCREMENT LENGTHl ^} WRTF;;PUT NUM ON SCREENv Q>SPACE MAKESPACE ;;PRINT A SPACE  INTLBF;;INIT INBUFF EXITVB!VBXIT X; WRTF%>^} LPC 5;;SAVE Y QBUFF8 %PUTCHAR ;;WILL POINT TO SCREEN 7;;PUTBYTE ROUTINE ? 3 )LENGTH;;DONE? HLP :^} X; TABLE AAUTOA* BUFF 4 SWITCH > ENDLINE H LENGTH R ENDP\ BEGINQ>4DOS;;POINT DOSVECf PDOSVEC;^};TO OUR ROUTINEp Q>5DOSz PDOSVEC QDOSINI;;GET DOS INIT VECTOR PRESET;;MODIFY JSR QDOSINI PRESET ^}Q>4RESET;;POINT DOSINI PDOSINI;;TO OUR RESET LOGIC Q>5RESET PDOSINI !LOOKUP X;  X; BEGINy \w^HEXHBINARYDE""************b}****************""* *""* HEX/DECIMAL/BINARY CHART *""* BY SCOTT SHECK *""*b} A.N.A.L.O.G. COMPUTING *""* *""**************************** o&;@,;@,;b}@,=6.0123456789ABCDEFOA@o@@P:I-@@:(@DEC. HEb }X BINARY | > I(@-@c(Z-AU@d6-) @`/6-9 @V(@b!}  | Z 2(@ <̠Ϡ؛Fn -@@6@16-P:'@,A6-&@$ab"}67<,.7%@<%@,g6-k n$P̠ϠٛZ\ -@@6@16-P:'@,A6-&@b#}$O67<,.=:,U6-Y \$D:HEXCHART.BAS""************`8Pcdv AXLPB0NZ f%} +AdAU0@@70@@Q0@@c@@f&}u@@7{(}AR@++(#(++(#| ANALOG MONTHLY DISK # 29 f'} |2++(#<( |Side A|F++(#P f(} AZ-@A $dGG;@@,;@ ,;@@,;A,;@,;@@,n"D1:MENU"f)}x&&@@D:*.*6,6." 6 Ai6-%@(6.7@<@f*},A67@ <@ ,..i67@<@,.7@<@,3 6.|67B:,%@,.367B:,%@,.f+}G67@<@,.(--@B:,:7<,4 G67<,..] 6.=:, @D67@<@,.7@f,}<@,]67@<@,.0$@''7@<@,4FREEA A@() f-}@''7@<@,4FREEA A@(7@<@,)| A'!-@6f.}+'@,%@' |"++(#| |, ( |  |6++(#f/}@**(" Select HELP.BAS for information.JART[@@9'-@@#C(f0} FILE NUMBERM A@Q[ B^P:,A@h0"@&6.7@<@,0 ArLB6.f1}7+&@,$@%@<+&@,$@%@,L B|37@<@,4 36.7@<@,!f2}7@<@,4DOS!.0 6.-@B:,07<,4 A 67B:,%@,.7<,   6.! 6.f3}D1:!67B:,%@,.?AR@'-@@"?  LOADING ? A`@@91@f4}@5%? BK-@@"-  CANNOT RUN 7 @A BK A@D:MENUVIEW3D .EXf7}   Lt  uE.S˽̠i*ȱi+L#˽̩˙ ij6}i8L#Ȣ \DBA`  ɛLA(`A ЩBL HHϩj;}E01 FREE SECTORS1|VIEW3D...EXE(034 ch pixel, andd( dE6IModified by P.ALTMAN ##REVIVE!"1HH|:|A1)! d W !W0LB n9} q  $Q8 i    Lw w  !W0LB lYe Fˑ0 [xԩ F͑0 [X@˩̩ͩ@΢@`ʈ` pl5 hhϩ(`ɛuȢ, ɛ99 H ٥ԅ˥Յhɛ2Ȣ0 :9 9  j<}٥ԅͥՅL ͩL ˅ͩ̅ Q8ͅ˥΅̩ Щ©A8B`9`BRNLBeͅ˥e΅̥˅j=}ԥ̅ ؠ)L 99CC " QLbH9 hC`AUTOA`     LDe΅̥˅ht